package src.accenture.com.session;

import java.util.Date;
import java.util.List;

import javax.ejb.Local;

import src.accenture.com.entity.MblDepartment;
import src.accenture.com.entity.MblEmployee;
import src.accenture.com.entity.MblHolidaytype;
import src.accenture.com.entity.MblRegistration;
import src.accenture.com.entity.MblRole;

@Local
public interface SessionEJBLocal {
    Object queryByRange(String jpqlStmt, int firstResult, int maxResults);

    MblHolidaytype persistMblHolidaytype(MblHolidaytype mblHolidaytype);

    MblHolidaytype mergeMblHolidaytype(MblHolidaytype mblHolidaytype);

    void removeMblHolidaytype(MblHolidaytype mblHolidaytype);

    List<MblHolidaytype> getMblHolidaytypeFindAll();

    MblRole persistMblRole(MblRole mblRole);

    MblRole mergeMblRole(MblRole mblRole);

    void removeMblRole(MblRole mblRole);

    List<MblRole> getMblRoleFindAll();

    MblRegistration persistMblRegistration(MblRegistration mblRegistration);

    MblRegistration mergeMblRegistration(MblRegistration mblRegistration);

    void removeMblRegistration(MblRegistration mblRegistration);

    List<MblRegistration> getMblRegistrationFindAll();

    MblDepartment persistMblDepartment(MblDepartment mblDepartment);

    MblDepartment mergeMblDepartment(MblDepartment mblDepartment);

    void removeMblDepartment(MblDepartment mblDepartment);

    List<MblDepartment> getMblDepartmentFindAll();

    MblEmployee persistMblEmployee(MblEmployee mblEmployee);

    MblEmployee mergeMblEmployee(MblEmployee mblEmployee);

    void removeMblEmployee(MblEmployee mblEmployee);

    List<MblEmployee> getMblEmployeeFindAll();
    
    public MblEmployee getEmployeeLogin(String username, String password);
    
    public MblHolidaytype getHolidaytype(String typeId);
    
    public List<MblRegistration> getHoliday(String empid, String typeid, int approvalstatus);
    
    public String getHolidayTypeNameById(String typeid);
    
    public int addNewMblRole(String role_id, String role_name, String describe);
    
    public int addNewMblRegistration(String emp_id
                                     , String type_id
                                     , Date fromdate
                                     , Date todate
                                     , String approvalstatus
                                     , Date approvaldate
                                     , String approvalby
                                     , String describe
                                     , String fromtime
                                     , String totime
                                     , String reason); 
    
    public int updateMblRegistration(String emp_id
                                     , String type_id
                                     , Date fromdate
                                     , Date todate
                                     , Date newfromdate
                                     , Date newtodate
                                     , String fromtime
                                     , String totime
                                     , String reason);
    
    public int deleteMblRegistration(String emp_id
                                     , String type_id
                                     , Date fromdate
                                     , Date todate);
}
